home *** CD-ROM | disk | FTP | other *** search
- unit AddInU;
-
- interface
-
- procedure BLRegister;
-
- implementation
-
- uses
- AddInFormU, Menus, Forms;
-
- type
- //Event handlers (mostly) need to be methods of instantiated objects
- TAddInHelper = class(TObject)
- private
- //The menu bar item, and menu item that we will add in to app
- FAddInItem,
- FBrowserMenuItem: TMenuItem;
- public
- constructor Create;
- destructor Destroy; override;
- //This is the event handler of our new menu item
- procedure BrowserMenuItemClick(Sender: TObject);
- end;
-
- constructor TAddInHelper.Create;
- begin
- inherited;
- //Locate application's menu bar
- if Assigned(Application.MainForm) and
- Assigned(Application.MainForm.Menu) then
- begin
- FAddInItem := NewItem('&Add-In', 0, False, True, nil, 0, 'AddInItem');
- FBrowserMenuItem := NewItem('&Object Browser', 0, False,
- True, BrowserMenuItemClick, 0, 'BrowserMenuItem');
- Application.MainForm.Menu.Items.Add(FAddInItem);
- FAddInItem.Add(FBrowserMenuItem)
- end
- end;
-
- destructor TAddInHelper.Destroy;
- begin
- //If package is unloaded before app is closed, tidy up
- //menu items, otherwise main menu will have done it for us
- if Assigned(Application.MainForm) and
- Assigned(Application.MainForm.Menu) then
- begin
- FBrowserMenuItem.Free;
- FAddInItem.Free
- end;
- ObjectBrowserForm.Free;
- inherited
- end;
-
- procedure TAddInHelper.BrowserMenuItemClick(Sender: TObject);
- begin
- //When menu item is chosen, instantiate the browser form
- if not Assigned(ObjectBrowserForm) then
- ObjectBrowserForm := TObjectBrowserForm.Create(nil);
- ObjectBrowserForm.Show
- end;
-
- var
- //Object that installs and implements menu item event handler
- AddInHelper: TAddInHelper;
-
- procedure BLRegister;
- begin
- AddInHelper := TAddInHelper.Create;
- end;
-
- initialization
-
- finalization
- AddInHelper.Free
- end.
-